package org.wu.framework.lazy.orm.core.source.clickhouse;

import lombok.Data;
import lombok.experimental.Accessors;
import org.wu.framework.lazy.orm.core.persistence.conf.LazyTableInfo;
import org.wu.framework.lazy.orm.core.stereotype.LazyTable;
import org.wu.framework.lazy.orm.core.stereotype.LazyTableField;

@Accessors(chain = true)
@Data
@LazyTable(schema = "INFORMATION_SCHEMA", tableName = "TABLES")
public class ClickHouseLazyTableInfo implements LazyTableInfo {
    private String tableCatalog;
    private String tableSchema;
    private String tableName;
    private String tableType;

    @LazyTableField(exist = false)
    private String engine;

    @LazyTableField(exist = false)
    private String version;

    @LazyTableField(exist = false)
    private String rowFormat;

    @LazyTableField(exist = false)
    private Long tableRows;

    @LazyTableField(exist = false)
    private String avgRowLength;

    @LazyTableField(exist = false)
    private String dataLength;

    @LazyTableField(exist = false)
    private String maxDataLength;

    @LazyTableField(exist = false)
    private String indexLength;

    @LazyTableField(exist = false)
    private String dataFree;

    @LazyTableField(exist = false)
    private String autoIncrement;

    @LazyTableField(exist = false)
    private String createTime;

    @LazyTableField(exist = false)
    private String updateTime;

    @LazyTableField(exist = false)
    private String checkTime;

    @LazyTableField(exist = false)
    private String tableCollation;

    @LazyTableField(exist = false)
    private String checksum;

    @LazyTableField(exist = false)
    private String createOptions;

    @LazyTableField(exist = false)
    private String tableComment;
}
